跳到主要内容

格式视图(FormatView)

一个文档在一个表面上的实时预览。由 FileFormat.view 创建;当表面关闭时释放。

方法(Methods)

draw

draw(renderer: Renderer, width: number, height: number) -> ()

将当前帧绘制到 width × height 的视口中。

measure

measure(viewportWidth: number, viewportHeight: number) -> (number, number)

仅用于 pane 表面:返回内容在指定视口下的固有尺寸,用于驱动面板的滚动条。在视图创建、文档变化、视口大小变化或 requestDraw 触发时调用。fit-to-viewport 的视图可省略;检查器永远不会调用 measure。

advance

advance(seconds: number) -> boolean

推进动画状态。返回 true 表示希望继续接收帧。

textScrolled

textScrolled(x: number, y: number, line: number, maxLine: number) -> ()

用户滚动了文本编辑器。x/y 是滚动百分比,line 是顶部可见行的小数值。宿主代表视图执行的滚动(scrollEditorTo)不会触发此事件,因此处理函数可以直接跟随而无需额外的回弹 bookkeeping。

paneScrolled

paneScrolled(x: number, y: number) -> ()

用户滚动了预览面板(仅 measured 视图)。x/y 是内容坐标中的新偏移。宿主通过 editor:scrollTo 应用的滚动不会触发此事件。

paneWheel

paneWheel(dx: number, dy: number) -> ()

未测量(自行滚动)预览上的滚轮/触控板原始输入,单位为像素,y 为正表示向下滚动。实现此方法可将面板输入路由到视图自身的滚动;未实现时宿主会回退到滚动配对的文本编辑器。

pointerDown

pointerDown(event: PointerEvent) -> ()

预览表面上的指针输入,与 draw 接收到的坐标空间相同。签名与 Layout 协议一致,因此实时画板可以直接转发事件(board:pointerDown(event) 等)。

pointerMove

pointerMove(event: PointerEvent) -> ()

pointerUp

pointerUp(event: PointerEvent) -> ()

documentChanged

documentChanged(doc: FormatDocument, parsed: buffer?) -> ()

仅文本文档:文档发生变化;刷新派生状态。

selectionChanged

selectionChanged(line: number, column: number) -> ()

仅文本文档:主光标移动。line 和 column 是基于 code point 的 0-based 坐标。

dispose

dispose() -> ()

表面正在关闭;释放资源。